#pragma once

////////////////////////////////////////////////////////////////////////////////////////////////////
/// <Summary>	IFactoryAble  </Summary>
/// 
/// <purpose>	
/// 	Base interface class for all objects that wish to use a factory implementation	
/// </purpose>
////////////////////////////////////////////////////////////////////////////////////////////////////

class IFactoryAble
{
public:
	IFactoryAble(void) { }
	virtual ~IFactoryAble(void) = 0 { } 

	////////////////////////////////////////////////////////////////////////////////////////////////////
	/// <Summary>	Clears this object to its blank/initial state. </Summary>
	////////////////////////////////////////////////////////////////////////////////////////////////////
	virtual void Clear() { }
};